Interception of data across wireless communication networks and through worldwide networks such as the Internet is an increasing concern. Consequently, cryptography systems have been employed to prevent the interception of data. Cryptography systems scramble data to prevent unauthorized access to the data. Cryptography systems may operate to process the data according to a crypto algorithm. A crypto algorithm may refer to a procedure or sequence of rules, steps or a series of mathematical equations which describe a cryptographic process.
Cryptography systems are typically subject to two competing requirements, performance and programmability. Performance refers to the rate of data processed per unit time. Cryptography may operate as a bottleneck to the rapid transmission of data, consequently, the more data processed per unit time by a cryptography system improves the overall performance of a communication system. Additionally, the ability to execute a variety of crypto algorithms or several variations of a crypto algorithm further increases the protection of data.
Conventional cryptography systems may be implemented via a hardware system whereby the hardware system is configured to execute a specific crypto algorithm. Cryptography systems with hardware system implementations provide solid performance but are limited by the inability to execute other crypto algorithms or other variations of a crypto algorithm. Also, cryptography systems with hardware system implementations are unable to be upgraded. Another drawback of hardware implementations of cryptography systems is the incorporation of the crypto algorithm within the implementation. When a crypto algorithm is incorporated within the hardware-based implementation, the implementation is a cryptographically controlled item (CCI). A CCI product is deemed secured information handling equipment and is subject to a special set of control requirements, including export controls. As a result, the hardware-based implementation of a cryptography system may not be distributable to foreign entities.
Processor-based implementations of cryptography systems have been developed to allow execution of multiple crypto algorithms or variations of a crypto algorithm. A problem with conventional processor-based implementations is performance. Conventional processor-based implementations of cryptography systems typically do not include the necessary infrastructure to support the efficient execution of crypto algorithms. Consequently, a high performance programmable cryptography system is necessary.